home *** CD-ROM | disk | FTP | other *** search
- ** NOTES ON KERMIT-86 FOR THE NEC APC **
-
- * Port selection *
-
- Currently only the standard serial port is supported, and not the H14 auxiliary
- port. The SET PORT command is not implemented.
-
-
- * Escaping from terminal mode *
-
- While in Kermit's terminal emulation mode, local commands are initiated by a
- two-character sequence consisting of the "escape character" followed by one
- other character identifying the command. (Make the second character a '?' to
- see a list of the valid commands.) As distributed, the standard Kermit-86
- uses the control-backslash character as the escape character in terminal mode.
- The trouble is that the CP/M-86 BIOS in the APC ignores a keyboard entry of
- Control-\ (i.e. holding down the CTRL key while striking the '\' key), making
- it difficult (impossible) to use this method to get out of terminal mode.
-
- One solution is to perform a "SET ESCAPE ^" command before entering terminal
- mode to change the escape character to a caret (or any other character the
- APC keyboard will generate). This command could be placed in your KERMIT.INI
- file for automatic execution every time Kermit is started.
-
- The simpler solution is to realize that the character code for a Control-\ is
- a hexadecimal 1C, and that this is the code generated by the INS key on the
- numeric keypad. Once you can remember that every reference to Control-\
- should be interpreted as a reference to the INS key, this is actually easier
- to use than the two-key Control-\ sequence.
-
-
- * The DEL key *
-
- In the standard CP/M-86 BIOS, the unshifted DEL key generates a Control-X
- character (hexadecimal 18). This is the CP/M command to erase the current
- input line, and is very useful for local processing. Most mainframes do not
- use the Control-X character at all, so it becomes much less useful during
- terminal emulation. The DEL character (hexadecimal 7F), on the other hand,
- is often used by mainframes and can only be generated on the APC by holding
- down the SHIFT key while striking the DEL key (this capability is not mentioned
- anywhere in the documentation).
-
- Because the Control-X character is so seldom used while the DEL character is
- commonly used, the initialization procedure in Kermit-86 modifies the CP/M-86
- BIOS so that the DEL key generates the DEL character whether shifted or not.
- Control-X can still be generated if necessary by holding down the CTRL key
- while striking the 'X' key. The CP/M-86 BIOS is returned to its original state
- when Kermit terminates.
-
-
- * Terminal emulation *
-
- The APC uses escape sequences which have been standardized by the American
- National Standards Institute (ANSI) to control cursor movement, screen erasing,
- and character attribute manipulation. Perhaps the best-known other terminal
- which follows ANSI guidelines is the DEC VT100. The APC only recognizes a few
- of the more important ANSI commands, and not the complete set which the VT100
- supports.
-
- The ANSI/VT100 features that the NEC APC supports are:
- direct cursor addressing (by row and column)
- relative cursor addressing (up, down, left, right)
- line erasing (cursor to end, beginning to cursor, entire line)
- screen erasing (cursor to end, beginning to cursor, entire screen)
- character attributes (underline, reverse video, blink, but not bold)
-
- In addition, the first four grey function keys (unshifted) generate the escape
- sequences associated with PF1 through PF4 on the VT100 keyboard. The arrow
- keys and numeric keypad DO NOT generate the corresponding VT100 sequences.
-
- These functions are enough to support simple command line editing on most
- systems, and allow mailers or paged file display programs to clear the screen
- before each display. Underlining and reverse video are also useful in some
- applications. This is not enough to support the more sophisticated screen
- control required by screen editors such as EMACS or KED. At present there
- are no plans to add these capabilities; you are welcome to do so.
-
-
- * The Home-cursor bug in CP/M-86 *
-
- Due to a bug in the implementation of the CP/M-86 BIOS, the sequence ordinarily
- used to home the cursor (esc [ H) does not work correctly. The following patch
- to the APC CPM.SYS will fix this bug.
-
- This patch example is taken from CP/M-86 version 1.106. The relevant patch
- addresses for 1.104 and 1.107 are also given. This patch is to the ESCCUP0
- routine in the APC BIOS and the correct addresses can be obtained for any
- version by displaying the CBIOS.LST file that came with the CP/M-86 release
- and adding 80H (hex) to the addresses it shows for that routine.
-
- As an elementary precaution, use a scratch disk for the initial modification
- and testing of the patch, and always leave the release disk in its original
- form. In the DDT86 example that follows, your entry is indicated by square
- brackets [], but these should not be typed.
-
-
- A>[DDT86]
- DDT86 1.1
- -[RCPM.SYS] ; Load the file to modify.
- START END
- 0800:0000 0800:6EFF
-
- -[L3505] ; List the beginning of ESCCUP0:
- 0800:3505 PUSH SI ; the 'JNZ 3540' at location 3515
- 0800:3506 MOV SI,5C68 ; should actually read 'JA 3540'.
- 0800:3509 CMP BYTE [5C67],00 ;
- 0800:350E JZ 3517 ; For version 1.104: [L3203]
- 0800:3510 CMP BYTE [5C67],02 ; version 1.107: [L366E]
- 0800:3515 JNZ 3540
- 0800:3517 MOV AX,[SI]
- 0800:3519 CMP AL,00
- 0800:351B JZ 3525
- 0800:351D SUB AL,01
- 0800:351F CMP AL,18
- 0800:3521 JB 3525
-
- -[S3515] ; For version 1.104: [S3213]
- 0800:3515 75 [77] ; version 1.107: [S367E]
- 0800:3516 29 [.]
-
- -[L3505] ; Verify the correction.
- 0800:3505 PUSH SI
- 0800:3506 MOV SI,5C68
- 0800:3509 CMP BYTE [5C67],00
- 0800:350E JZ 3517
- 0800:3510 CMP BYTE [5C67],02
- 0800:3515 JA 3540 ; This should be the only change.
- 0800:3517 MOV AX,[SI]
- 0800:3519 CMP AL,00
- 0800:351B JZ 3525
- 0800:351D SUB AL,01
- 0800:351F CMP AL,18
- 0800:3521 JB 3525
-
- -[WCPM.SYS] ; Save the file and exit with ^C.
- -^C
- A>
-
-
- Then reboot your system with the FNC, CTRL, and Break/Stop sequence to load
- the new version of CPM. After you've tried out the new version and verified
- that it works, copy it to your working disks.
-